﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace LowLevelGraphics.Filter
{
    /// <summary>
    /// I2 = imimposemin(I,BW) modifies the intensity image I using morphological reconstruction so it 
    /// only has regional minima wherever BW is nonzero. BW is a binary image the same size as I.
    /// By default, imimposemin uses 8-connected neighborhoods for 2-D images and 26-connected neighborhoods for 3-D images. 
    /// For higher dimensions, imimposemin uses conndef(ndims(I),'minimum').
    /// I2 = imimposemin(I,BW,conn) specifies the connectivity, where conn can have any of the following scalar values.
    /// </summary>
    public class imimposemin : BaseImageFilter
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="imimposemin"/> class.
        /// </summary>
        public imimposemin()
        {
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="imimposemin"/> class.
        /// </summary>
        /// <param name="_imimposemin">The _imimposemin.</param>
        internal imimposemin(imimposemin _imimposemin)
        {
        }

        /// <summary>
        /// This is used to clone a filter, each filter must implement it's own clone functionality
        /// </summary>
        /// <returns></returns>
        public override object Clone()
        {
            return new imimposemin(this);
        }
    }
}
